From 724da66465190be272fa8703328334e2702005e0 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 1 Feb 2006 00:20:29 +0100 Subject: [PATCH] No need for the rcu-nohz patch any more, as rcupdate.c was made tickless-mode aware long ago. We do need to be a bit more careful about ordering in stop_hz_timer() though. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c | 3 ++- patches/linux-2.6.14/rcu-nohz.patch | 16 ---------------- 2 files changed, 2 insertions(+), 17 deletions(-) delete mode 100644 patches/linux-2.6.14/rcu-nohz.patch diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c index 9430b10aa3..78e7fb0010 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c @@ -850,8 +850,9 @@ void stop_hz_timer(void) unsigned int cpu = smp_processor_id(); unsigned long j; - /* s390 does this /before/ checking rcu_pending(). We copy them. */ + /* We must do this /before/ checking rcu_pending(). */ cpu_set(cpu, nohz_cpu_mask); + smp_mb(); /* Leave ourselves in 'tick mode' if rcu or softirq pending. */ if (rcu_pending(cpu) || local_softirq_pending()) { diff --git a/patches/linux-2.6.14/rcu-nohz.patch b/patches/linux-2.6.14/rcu-nohz.patch deleted file mode 100644 index b882db04e7..0000000000 --- a/patches/linux-2.6.14/rcu-nohz.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -pru ../pristine-linux-2.6.14/kernel/rcupdate.c ./kernel/rcupdate.c ---- ../pristine-linux-2.6.14/kernel/rcupdate.c 2005-10-28 01:02:08.000000000 +0100 -+++ ./kernel/rcupdate.c 2006-01-31 16:04:36.000000000 +0000 -@@ -227,8 +227,11 @@ static void rcu_start_batch(struct rcu_c - */ - static void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp, struct rcu_state *rsp) - { -+ cpumask_t mask; -+ - cpu_clear(cpu, rsp->cpumask); -- if (cpus_empty(rsp->cpumask)) { -+ cpus_andnot(mask, rsp->cpumask, nohz_cpu_mask); -+ if (cpus_empty(mask)) { - /* batch completed ! */ - rcp->completed = rcp->cur; - rcu_start_batch(rcp, rsp, 0); -- 2.30.2